package work.base.data.number;

/**
 * Integer包装类的一些基本方法
 *
 * 类型转换parseInt() valueOf()
 * 进制换算 toBinaryString()
 */
public class IntegerTest {

    public static void main(String[] args) {

        // 0x是16进制 int赋值的时候指定为16进制
        int int1 = 0x11;
        System.out.println("16进制数字:" + int1);
        // 0是八进制
        int int2 = 0144;
        System.out.println("8进制数字:" +int2);

        // 声明Integer
        Integer a = new Integer(3);

        // 字符串转化为Integer 两种方式
        // parseInt()返回int  多次解析同一个字符串得到的int基本类型数据是相等的
        // valueOf()返回Integer 多次解析相同的一个字符串时，得到的是Integer类型的对象，
        // 得到的对象有时是同一个对象(-128~127)，有时是不同的对象(不在-128~127)
        Integer aaa = Integer.parseInt("222");
        Integer aa = Integer.valueOf("111");

        // Integer类转为int基本类型
        int a1 = aa.intValue();
        int value = aa.compareTo(aaa);
        System.out.println(value);

        // 类型转换 int转String
        String str = String.valueOf(123);
        System.out.println(str);

        //进制转化
        // 将十进制100转换为二进制。
        String bbb = Integer.toBinaryString(100);
        System.out.println(bbb);
        // 将十进制100转换为八进制。
        String ccc = Integer.toOctalString(100);
        System.out.println(ccc);
        // 十进制转换为其他进制 比如28进制，但是只能转为[2,36]之间的进制
        Integer.toString(100,28);
        // 将其他进制转换为十进制。将二进制101转换为十进制。
        Integer.parseInt("101",2);

    }
}
